home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 011-020 / amok12 / module / inout2.def < prev    next >
Text File  |  1993-11-04  |  2KB  |  69 lines

  1. (*---------------------------------------------------------------------------
  2.     :Program.    InOut2.def
  3.     :Author.     Bernd Preusing
  4.     :Address.    Gerhardstr. 16  D-2200 Elmshorn
  5.     :Phone.      04121/22486
  6.     :Shortcut.   [bep]
  7.     :Version.    1.1
  8.     :Date.       09-Nov-88
  9.     :Copyright.  PD
  10.     :Language.   Modula-II
  11.     :Translator. M2Amiga
  12.     :Imports.    ---
  13.     :UpDate.     Changed 'count' in ReadCount to VAR, so actual read length
  14.          is returned.
  15.     :Contents.   Added some procedures to InOut
  16.     :Remark.     SetInput und SetOutput dienen dazu, auch Kommandozeilen-
  17.          Parameter direkt zu übergeben und so OpenInput und
  18.          OpenOutput zu umgehen.
  19.          WriteCount, ReadCount sollen FileSystem überflüssig machen.
  20.          ReadLn liest bis eol oder eof oder HIGH(str)+1, also
  21.          eine ganze Zeile
  22. ---------------------------------------------------------------------------*)
  23. DEFINITION MODULE InOut2;
  24.  
  25. FROM SYSTEM IMPORT 
  26.     ADDRESS, BYTE;
  27.  
  28. IMPORT ASCII;
  29.  
  30. CONST
  31.  eol = ASCII.eol;
  32.  
  33. VAR
  34.  done: BOOLEAN; (* nach jeder Prozedur gesetzt *)
  35.  termCh: CHAR;
  36.  
  37. PROCEDURE OpenInput(defExt:ARRAY OF CHAR);
  38. PROCEDURE OpenOutput(defExt:ARRAY OF CHAR);
  39.  
  40. PROCEDURE SetInput(name: ARRAY OF CHAR);
  41. PROCEDURE SetOutput(name: ARRAY OF CHAR);
  42.  
  43. PROCEDURE CloseInput();
  44. PROCEDURE CloseOutput();
  45.  
  46. PROCEDURE Write(ch: CHAR);
  47. PROCEDURE WriteLn();
  48. PROCEDURE WriteString(str: ARRAY OF CHAR);
  49. PROCEDURE WriteInt(x: LONGINT; n: INTEGER);
  50. PROCEDURE WriteCard(x: LONGCARD; n: INTEGER);
  51. PROCEDURE WriteOct(x: LONGINT; n: INTEGER);
  52. PROCEDURE WriteHex(x: LONGINT; n: INTEGER);
  53. PROCEDURE WriteBytes(VAR blk: ARRAY OF BYTE);
  54. PROCEDURE WriteCount(adr: ADDRESS; count: LONGINT);
  55.  
  56. PROCEDURE Read(VAR ch: CHAR);
  57. PROCEDURE ReadString(VAR str: ARRAY OF CHAR);
  58.  
  59. (* immer done, termCh=eol, eof oder anderes bei Stringüberlauf *)
  60. PROCEDURE ReadLn(VAR str: ARRAY OF CHAR; VAR len: INTEGER);
  61. PROCEDURE ReadInt(VAR x: INTEGER);
  62. PROCEDURE ReadLongInt(VAR x: LONGINT);
  63. PROCEDURE ReadCard(VAR x: CARDINAL);
  64. PROCEDURE ReadLongCard(VAR x: LONGCARD);
  65. PROCEDURE ReadBytes(VAR blk: ARRAY OF BYTE);
  66. PROCEDURE ReadCount(adr: ADDRESS; VAR count: LONGINT);
  67.  
  68. END InOut2.def
  69.